Artificial intelligence (AI) can enable computers to perform increasingly complicated tasks, such as tasks related to cognitive functions typically associated with humans. Several approaches to AI are prevalent, including machine learning (ML) techniques. In ML, a computer may be programmed to parse data, learn from the data, and make predictions from real-world inputs. With ML, a computer may be trained using data to perform a task, rather than explicitly programmed with a particular algorithm for performing the task. One ML approach, referred to as artificial neural networks, was inspired by the interconnections of neurons in a biological brain.
Unfortunately, the complexity of many AI and ML techniques often requires the performance of a variety of computationally intensive tasks, which may tax existing computing systems to their limits. While the performance of processing units may be improved by scaling their frequency or voltage, processing units often become increasingly unstable past certain operating frequencies, voltages, and temperatures. Moreover, because general-purpose processing units are typically designed to handle a variety of unpredictable, software-based workloads, their power and performance needs are often similarly unpredictable and varied. These and other factors may make it difficult for designers to optimize the power usage and/or performance of AI and ML systems.